package com.vip8.recorder.api.model.base;

import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import lombok.Data;

import java.io.Serializable;

/**
 * http返回结果统一处理类
 *
 */
@Data
public class Result implements Serializable {
    /**
     * 追踪id
     */
    protected String traceId = IdUtil.simpleUUID();
    /**
     * 表示本次请求是否成功。200 :成功。
     */
    protected int errCode;
    /**
     * 表示本次请求是否成功。 true:成功 false：失败。
     */
    protected boolean success;
    /**
     * 需要传递的信息，如错误信息
     */
    protected String errMessage;


    public static final int SUCCESS_CODE = 200; // 接口成功返回码

    public static final int FAIL_CODE = 500; // 系统错误

    public static final String FAIL_DEFAULT_MESSAGE = "系统错误"; // 系统错误

    public Result() {
    }

    public Result(int code, boolean success, String message) {
        this.errCode = code;
        this.success = success;
        this.errMessage = message;
    }

    public static  Result success() {
        return new Result(SUCCESS_CODE, true, "");
    }


    public static  Result failure() {
        return new Result(FAIL_CODE, false, FAIL_DEFAULT_MESSAGE);
    }
}
